import {
  defineConfig,
  presetIcons,
  presetMini,
  transformerDirectives,
  transformerVariantGroup,
} from 'unocss'

import { presetUni } from '@uni-helper/unocss-preset-uni'

export default defineConfig({
  presets: [
    presetUni(),
    presetMini({ dark: 'media' }),
    presetIcons({
      scale: 1.2,
      warn: true,
      extraProperties: {
        'display': 'inline-block',
        'vertical-align': 'middle',
      },
    }),
  ],
  shortcuts: {
    'wh-full': 'w-full h-full',
    'flex-center': 'flex justify-center items-center',
    'flex-col-center': 'flex-center flex-col',
    'flex-x-center': 'flex justify-center',
    'flex-y-center': 'flex items-center',
    'i-flex-center': 'inline-flex justify-center items-center',
    'i-flex-x-center': 'inline-flex justify-center',
    'i-flex-y-center': 'inline-flex items-center',
    'b-flex-col': 'flex flex-col',
    'flex-col-stretch': 'b-flex-col items-stretch',
    'i-flex-col': 'inline-flex flex-col',
    'i-flex-col-stretch': 'i-flex-col items-stretch',
    'flex-1-hidden': 'flex-1 overflow-hidden',
    'absolute-lt': 'absolute left-0 top-0',
    'absolute-lb': 'absolute left-0 bottom-0',
    'absolute-rt': 'absolute right-0 top-0',
    'absolute-rb': 'absolute right-0 bottom-0',
    'absolute-tl': 'absolute-lt',
    'absolute-tr': 'absolute-rt',
    'absolute-bl': 'absolute-lb',
    'absolute-br': 'absolute-rb',
    'absolute-center': 'absolute-lt flex-center wh-full',
    'fixed-lt': 'fixed left-0 top-0',
    'fixed-lb': 'fixed left-0 bottom-0',
    'fixed-rt': 'fixed right-0 top-0',
    'fixed-rb': 'fixed right-0 bottom-0',
    'fixed-tl': 'fixed-lt',
    'fixed-tr': 'fixed-rt',
    'fixed-bl': 'fixed-lb',
    'fixed-br': 'fixed-rb',
    'fixed-center': 'fixed left-0 top-0 flex-center wh-full',
    'nowrap-hidden': 'whitespace-nowrap overflow-hidden',
    'ellipsis-text': 'nowrap-hidden text-ellipsis',
    'transition-base': 'transition-all duration-300 ease-in-out',
  },
  rules: [
    [/^(?:color|c)-(.+)$/, ([, color]) => ({ color: `${color}` })],
    ['space-nowrap', { 'white-space': 'nowrap' }],
    ['space-normal', { 'white-space': 'normal' }],
    ['transition-all', { transition: 'all 0.3s' }],
    ['drag-none', { '-webkit-user-drag': 'none' }],
    ['font-AT', { 'font-family': 'Time New Roman, Times, serif', 'font-weight': 'bold' }], // 文章标题专用字体
    ['font-TNR', { 'font-family': 'Time New Roman, Times, serif' }], // 文章标题专用字体
    ['font-T', { 'font-family': 'MyriadPro-Semibold, Verdana, Geneva, sans-serif' }],
    ['font-C', { 'font-family': 'Georgia, Time New Roman, Times, serif' }],
  ],
  theme: {
    colors: {
      theme: 'var(--theme-color)',
      dark: 'var(--theme-dark-color)',
      light: 'var(--theme-light-color)',
    },
    fontFamily: {
      myriadPro: ['MyriadPro-Regular'],
    },
  },
  transformers: [
    transformerDirectives(),
    transformerVariantGroup(),
  ],
})
